using SheLife.Domain.Entities;

namespace SheLife.Domain.Interfaces.Repositories
{
    /// <summary>
    /// 系统文件仓储接口
    /// </summary>
    public interface ISystemFileRepository : IRepository<SystemFile>
    {
        Task<IEnumerable<SystemFile>> GetByUserIdAsync(Guid userId);
        Task<IEnumerable<SystemFile>> GetByTypeAsync(string type);
        Task<IEnumerable<SystemFile>> GetByExtensionAsync(string extension);
        Task<IEnumerable<SystemFile>> GetByDateRangeAsync(DateTime startDate, DateTime endDate);
        Task<SystemFile> GetByHashAsync(string hash);
        Task<long> GetTotalSizeByUserIdAsync(Guid userId);
        Task<long> GetTotalSizeByTypeAsync(string type);
    }
}